package me.bincker.formwork.web.core.config.jackson.annotation

import me.bincker.formwork.web.core.config.jackson.filter.JsonHideViewPropertyFilter
import kotlin.reflect.KClass


/**
 * 作用与JsonView相反，通过自定义JsonFilter实现
 */
@Target(AnnotationTarget.FUNCTION)
@Retention(AnnotationRetention.RUNTIME)
@MustBeDocumented
annotation class JsonHideView(
//        对应@JsonView里的类列表，将其属性过滤
        val value : Array<KClass<*>>,
//        name是对应实体类上@JsonFilter的name，如果不填的话默认是SystemJsonFilter，是注解在BaseEntity上的，对所有实体有效
        val name : String = JsonHideViewPropertyFilter.FILTER_NAME,
//        对象限制，需要隐藏的属性的对象必须是它或者它的子类
        val clazz : KClass<*> = Object::class
)